WebWork 2 : 客户端校验
This page last changed on Jul 22, 2004 by unkyaku.
WebWork在XWork标准校验框架基础上增加了客户端校验支持. 你可以在表单中的在<ww:form>标签中指定validate="true"来激活客户端校验: <ww:form name="'test'" action="'javascriptValidation'" validate="true"> ... </ww:form> 为此你必须为表单指定name. 还应当确认<ww:form>标签中设置了正确的action和namespace属性. 例如, 如果有一个名为"submitProfile"的活动在名空间"/user"中, 必须使用下列代码<ww:form namespace="'/user'" action="'submitProfile'" validate="true"> ... </ww:form> 而下面的代码中, 表单可以正常工作, 客户端校验则不能: <ww:form action="'/user/submitProfile.action'" validate="true"> ... </ww:form> 并非全部校验器都支持客户端校验. 仅有实现ScriptValidationAware接口的校验器支持这个特性. 具体情况参见WebWork校验器列表 注意: 在UI标签中的required属性并不进行任何客户端校验.
构建支持客户端校验的校验器任何实现com.opensymphony.webwork.validators.ScriptValidationAware接口的校验器都支持客户端校验: public interface ScriptValidationAware extends FieldValidator { public String validationScript(Map parameters); } 如果激活了客户端校验, validationScript返回的字符串将在客户端表端提交前执行. 例如, requiredstring校验器包含下列代码: public String validationScript(Map parameters) { String field = (String) parameters.get("name"); StringBuffer js = new StringBuffer(); js.append("value = form.elements['" + field + "'].value;\n"); js.append("if (value == \"\") {\n"); js.append("\talert('" + getMessage(null) + "');\n"); js.append("\treturn '" + field + "';\n"); js.append("}\n"); js.append("\n"); return js.toString(); } 目前只支持JavaScript. |
Document generated by Confluence on Dec 14, 2004 16:36 |